Conventional Drawing and Labeling of SEM Model

SEM nomenclature conventions

name upper case lower case usage
Lambda \(\Lambda\) \(\lambda\) Loading of a manifest indicator onto a latent construct
Psi \(\Psi\) \(\psi\) residual variance/covariance of contruct when endogenous
Theta \(\Theta\) \(\theta\) residual variance/covariance of indicators
Sigma \(\Sigma\) \(\sigma\) \(\Sigma\) is the model implied variance/covariance matrix;
\(\sigma\) is standard deviation, \(\sigma^2\) variance of indicator.
\(\sigma\) can also be covariance of indicator

\[ \textbf{$\Sigma$} = \left[ \begin{array}{cccccc} \sigma_{1,1}^2 & \sigma_{1,2} & \sigma_{1,3} \\ \sigma_{2,1} & \sigma_{2,2}^2 & \sigma_{2,3} \\ \sigma_{3,1} & \sigma_{3,2} & \sigma_{3,3}^2 \end{array} \right],\]

\[ \textbf{$\Lambda$} = \left[ \begin{array}{cc} \lambda_{1,1} \\ \lambda_{2,1} \\ \lambda_{3,1} \end{array} \right],\]

\[ \textbf{$\Psi$} = \left[ \begin{array}{cc} \psi_{1,1} \end{array} \right],\]

\[ \textbf{$\Lambda^\prime$} = \left[ \begin{array}{cc} \lambda_{1,1} & \lambda_{2,1} & \lambda_{3,1} \end{array} \right],\]

\[ \textbf{$\Theta$} = \left[ \begin{array}{cccccc} \theta_{1,1} & 0 & 0 \\ 0 & \theta_{2,2} & 0 \\ 0 & 0 & \theta_{3,3} \end{array} \right].\]

Fundamental SEM equation

\[ \Sigma = \Lambda \Psi \Lambda' + \Theta \tag{1} \]

Measurement Model: 3 indicators

library(lavaan)

##Prepare data with sufficient statisitics##
mymeans<-matrix(c(3.06893, 2.92590, 3.11013), ncol=3,nrow=1)
mysd<-c(0.84194,0.88934,0.83470)
mat <- c(1.00000,
         0.55226, 1.00000,
         0.56256, 0.60307, 1.00000)
mycor <- getCov(mat, lower = TRUE)

##Transform correlation matrix to covariance matrix using information above##
mycov <- mysd %*% t(mysd)

rownames(mycor) <-c( "Glad", "Cheerful", "Happy")
colnames(mycor) <-c( "Glad", "Cheerful", "Happy")

rownames(mycov) <-c( "Glad", "Cheerful", "Happy")
colnames(mycov) <-c( "Glad", "Cheerful", "Happy")
mynob<-823
Descriptive Statistics
  Glad Cheerful Happy
Glad 1.00 0.55 0.56
Cheerful 0.55 1.00 0.60
Happy 0.56 0.60 1.00
Mean 3.07 2.93 3.11
SD 0.84 0.89 0.83
Var 0.71 0.79 0.70

Mplus output using Correlation Table and first indicator fixed to 1.00

 [1] MODEL RESULTS                                                 
 [2]                                                     Two-Tailed
 [3]                     Estimate       S.E.  Est./S.E.    P-Value 
 [4]  POSITIVE BY                                                  
 [5]     GLAD1              1.000      0.000    999.000    999.000 
 [6]     CHEER1             1.072      0.061     17.612      0.000 
 [7]     HAPPY1             1.092      0.062     17.624      0.000 
 [8]  Variances                                                    
 [9]     POSITIVE           0.515      0.049     10.521      0.000 
[10]  Residual Variances                                           
[11]     GLAD1              0.484      0.033     14.547      0.000 
[12]     CHEER1             0.408      0.033     12.211      0.000 
[13]     HAPPY1             0.385      0.034     11.484      0.000 
lambda = matrix(c(1.00, 1.072, 1.092), nrow = 3)
lambda
      [,1]
[1,] 1.000
[2,] 1.072
[3,] 1.092
psi    = matrix(.515)
psi
      [,1]
[1,] 0.515
t(lambda)
     [,1]  [,2]  [,3]
[1,]    1 1.072 1.092
theta  = diag(c(.484, .408, .385))
theta
      [,1]  [,2]  [,3]
[1,] 0.484 0.000 0.000
[2,] 0.000 0.408 0.000
[3,] 0.000 0.000 0.385
sigma = lambda %*% psi %*% t(lambda) + theta
round(sigma,2)
     [,1] [,2] [,3]
[1,] 1.00 0.55 0.56
[2,] 0.55 1.00 0.60
[3,] 0.56 0.60 1.00
  Glad Cheerful Happy
Glad 1.00 0.55 0.56
Cheerful 0.55 1.00 0.60
Happy 0.56 0.60 1.00

Measurement Model: 6 indicators, 2 latent constructs

\[ \textbf{$\Sigma$} = \left[ \begin{array}{cccccc} \sigma_{1,1}^2 & \sigma_{1,2} & \sigma_{1,3} & \sigma_{1,4} & \sigma_{1,5} & \sigma_{1,6} \\ \sigma_{2,1} & \sigma_{2,2}^2 & \sigma_{2,3} & \sigma_{2,4} & \sigma_{2,5} & \sigma_{2,6} \\ \sigma_{3,1} & \sigma_{3,2} & \sigma_{3,3}^2 & \sigma_{3,4} & \sigma_{3,5} & \sigma_{3,6} \\ \sigma_{4,1} & \sigma_{4,2} & \sigma_{4,3} & \sigma_{4,4}^2 & \sigma_{4,5} & \sigma_{4,6} \\ \sigma_{5,1} & \sigma_{5,2} & \sigma_{5,3} & \sigma_{5,4} & \sigma_{5,5}^2 & \sigma_{5,6} \\ \sigma_{6,1} & \sigma_{6,2} & \sigma_{6,3} & \sigma_{6,4} & \sigma_{6,5} & \sigma_{6,6}^2 \end{array} \right],\]

\[ \textbf{$\Lambda$} = \left[ \begin{array}{cc} \lambda_{1,1} & 0 \\ \lambda_{2,1} & 0 \\ \lambda_{3,1} & 0 \\ 0 & \lambda_{4,2} \\ 0 & \lambda_{5,2} \\ 0 & \lambda_{6,2} \end{array} \right],\]

\[ \textbf{$\Psi$} = \left[ \begin{array}{cc} \psi_{1,1} & \psi_{1,2} \\ \psi_{2,1} & \psi_{2,2} \end{array} \right],\]

\[ \textbf{$\Lambda^\prime$} = \left[ \begin{array}{cc} \lambda_{1,1} & \lambda_{2,1} & \lambda_{3,1} 0 & 0 & 0\\ 0 & 0 & 0 & \lambda_{4,2} & \lambda_{5,2} & \lambda_{6,2} \end{array} \right],\]

\[ \textbf{$\Theta$} = \left[ \begin{array}{cccccc} \theta_{1,1} & 0 & 0 & 0 & 0 & 0 \\ 0 & \theta_{2,2} & 0 & 0 & 0 & 0 \\ 0 & 0 & \theta_{3,3} & 0 & 0 & 0 \\ 0 & 0 & 0 & \theta_{4,4} & 0 & 0 \\ 0 & 0 & 0 & 0 & \theta_{5,5} & 0 \\ 0 & 0 & 0 & 0 & 0 & \theta_{6,6} \end{array} \right].\]

lambda = matrix(c(.712, .788, .768, 0.0, 0.0, 0.0,
                  0.0, 0.0, 0.0, .729, .764, .778), nrow = 6)
lambda
      [,1]  [,2]
[1,] 0.712 0.000
[2,] 0.788 0.000
[3,] 0.768 0.000
[4,] 0.000 0.729
[5,] 0.000 0.764
[6,] 0.000 0.778
psi    = matrix(c(1.00, 0.561,
                  0.561, 1.00), nrow = 2)
psi
      [,1]  [,2]
[1,] 1.000 0.561
[2,] 0.561 1.000
theta = diag(c(.491, .378, .409, .467, .416, .394))
theta
      [,1]  [,2]  [,3]  [,4]  [,5]  [,6]
[1,] 0.491 0.000 0.000 0.000 0.000 0.000
[2,] 0.000 0.378 0.000 0.000 0.000 0.000
[3,] 0.000 0.000 0.409 0.000 0.000 0.000
[4,] 0.000 0.000 0.000 0.467 0.000 0.000
[5,] 0.000 0.000 0.000 0.000 0.416 0.000
[6,] 0.000 0.000 0.000 0.000 0.000 0.394
sigma = lambda %*% psi %*% t(lambda) + theta
round(sigma, 2)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1.00 0.56 0.55 0.29 0.31 0.31
[2,] 0.56 1.00 0.61 0.32 0.34 0.34
[3,] 0.55 0.61 1.00 0.31 0.33 0.34
[4,] 0.29 0.32 0.31 1.00 0.56 0.57
[5,] 0.31 0.34 0.33 0.56 1.00 0.59
[6,] 0.31 0.34 0.34 0.57 0.59 1.00
vec <- dput(scan('topics/2_MeasurementModel/2b_ConfirmatoryFactorAnalysis/mplus/PAcorr2t.dat', quiet = TRUE))

c(1, 0.55226, 1, 0.56256, 0.60307, 1, 0.31889, 0.35898, 0.27757, 1, 0.24363, 0.35798, 0.31889, 0.56014, 1, 0.32217, 0.36385, 0.32072, 0.56164, 0.59738, 1)

mat <- getCov(vec, lower = TRUE)
ztable(mat)
  V1 V2 V3 V4 V5 V6
V1 1.00 0.55 0.56 0.32 0.24 0.32
V2 0.55 1.00 0.60 0.36 0.36 0.36
V3 0.56 0.60 1.00 0.28 0.32 0.32
V4 0.32 0.36 0.28 1.00 0.56 0.56
V5 0.24 0.36 0.32 0.56 1.00 0.60
V6 0.32 0.36 0.32 0.56 0.60 1.00

Adding Means to the Model

The means structure equation:

\[ \mu_y = \textbf{T} + \Lambda \textbf{A}. \tag{2} \]